考慮一個具有 1 個符號位、5 個整數位和 10 個小數位的 16 位元 定點數系統。10 個小數位繼續從整數位停止的地方接續。例如,位元表示 0b0 01101 1010000000 表示十進制為 13.625。
在這個問題中,我們將此定點系統與遵守所有 IEEE-754 約定(包括非正常數、NaN 等)的 16 位浮點系統進行比較,具有 5 位指數和指數偏差 -15。
將 -22.375 以十六進位使用上述 16 位定點系統表示。
C01 = 0xD980
符號位為 0b1,因為該數為負數。
整數位是透過將 22 轉換為無符號二進位來獲得的,給我們 0b10110。
小數位是將 0.375 轉換為無符號二進位得到的;結果為 0b0.0110000000,並且小數部分為 0b0110000000。
總共有 0b1101100110000000,相當於十六進位的 0xD980。
將 -22.375 以十六進位使用上述 16 位 浮點數系統表示。
C02 = 0xCD98
本題的浮點數系統共有 16 位,其中包括 1 個符號位和 5 個指數位。這讓尾數有 10 位。
首先,將 22.375 轉換為二進位:0b1 0110.011。
然後,移動二進位點來建立 0b1.MM MMMM MMMM × (2^E) 的形式。
這給我們 0b1.01 1001 1000 × (2^4)。
從這個形式可以直接讀取尾數位:0b01 1001 1000。記得要省略二進位點左側的隱含 1。
指數是 -4,我們可以將其轉換為偏置表示法,方法是減去偏置:4 - (-15) = 19。在無符號 5 位二進位中,這是 0b10011。
符號位是 0b1,因為該數是負數。
總共,我們有 0b1 10011 01 1001 1000,即 0xCD98 在十六進位表示。
在區間 [16, 64) (包括 16,不包括 64)中,可以由上述 定點數系統表示的數字有多少?
C03 = 2^14
16 在定點數系統中的表示為 0b10000.0000000000。該系統中可表示的最大數字為 0b11111.1111111111,即 2^5 - 2^{-10},接近於 32。
在這兩個數字之間,我們可以選擇每一位元,除了最重要的整數位可以是 0 或 1。這讓我們有 4 個整數位和 10 個小數位,這些位元可以是 0 或 1。每個位元組合代表不同的數字,因此我們總共有 2^14 個可表示的數字。